Field of the Invention
The present invention relates to an image rendering technique.
Description of the Related Art
Patent references 1 (Japanese Patent No. 03809284) and 2 (Japanese Patent Laid-Open No. 09-167243) disclose methods of causing renderers that process rendering commands described in the vector graphics language to parallelly process the rendering commands for the purpose of speeding up the process or distributing the load. Patent reference 1 discloses a method of transferring rendering commands to renderers via a common bus and causing the renderers to parallelly process images. Patent reference 2 discloses a method of dividing a rendering region into bands and parallelly processing the bands.
As the resolution of graphics rises, a technique of parallelly processing rendering commands is used. In the conventional method, however, the arrangement for outputting graphics in a correct order by controlling the rendering command processing timing and the rendering result output order is complex, and the cost thereof is high.
In the technique disclosed in patent reference 1, each renderer outputs a rendering command acquisition request to the main memory. If the requests collide, control is done to output a high-priority rendering command to be processed first to the common bus so as to transfer it to the corresponding renderer. When outputting rendering results processed by the renderers to the common bus as well, the output order is controlled not to cause collision. For this reason, the processing load of hardware is heavy. In addition, when a renderer has completed a low-priority image process to be output later before a high-priority image process to be output first from another renderer, the generated image needs to be temporarily stored in the local memory. The memory cost for it is high.
In the technique disclosed in patent reference 2, the rendering region of one frame is segmented in the horizontal direction and thus divided into a plurality of band images. The band images are parallelly processed, and the band image rendering result is output sequentially from the preceding stage. However, the time needed to render the band image changes depending on the degree of complexity. Hence, depending on circumstances, each generated band image needs to be held up to the end of the process of the band image of the preceding stage. Furthermore, since the process is performed for each band image, the memory cost is slightly lower than that when holding data of one frame. Instead, process assignment to the band images and the order control are more complex than that when processing each frame.